Repository navigation
Creating agent harness for rnx-kit eval tests - #4425
Draft
Tommy Nguyen (tido64) with Copilot wants to merge 37 commits into
Draft
Tommy Nguyen (tido64) with Copilot wants to merge 37 commits into
Tommy Nguyen (tido64) with Copilot wants to merge 37 commits into
Conversation
Copilot created this pull request from a session on behalf of
Tommy Nguyen (tido64)
October 21, 2026 13:00
Tommy Nguyen (tido64)
force-pushed
the
copilot/tidoevals-tests
branch
from
October 27, 2026 09:26
5d70e54 to
b7d7be7
Compare
Co-authored-by: tido64 <4123478+tido64@users.noreply.github.com>
Co-authored-by: tido64 <4123478+tido64@users.noreply.github.com>
Co-authored-by: tido64 <4123478+tido64@users.noreply.github.com>
Co-authored-by: tido64 <4123478+tido64@users.noreply.github.com>
…gurable Co-authored-by: tido64 <4123478+tido64@users.noreply.github.com>
Co-authored-by: tido64 <4123478+tido64@users.noreply.github.com>
Co-authored-by: tido64 <4123478+tido64@users.noreply.github.com>
Co-authored-by: tido64 <4123478+tido64@users.noreply.github.com>
…ecksForChanges Co-authored-by: tido64 <4123478+tido64@users.noreply.github.com>
…ig to evals Co-authored-by: tido64 <4123478+tido64@users.noreply.github.com>
…hChanges to evals Co-authored-by: tido64 <4123478+tido64@users.noreply.github.com>
Co-authored-by: tido64 <4123478+tido64@users.noreply.github.com>
Co-authored-by: tido64 <4123478+tido64@users.noreply.github.com>
Co-authored-by: tido64 <4123478+tido64@users.noreply.github.com>
Co-authored-by: tido64 <4123478+tido64@users.noreply.github.com>
Tommy Nguyen (tido64)
force-pushed
the
copilot/tidoevals-tests
branch
from
October 27, 2026 18:14
292eb9e to
11b89e3
Compare
Co-authored-by: tido64 <4123478+tido64@users.noreply.github.com>
…s table; add `yarn view` Co-authored-by: tido64 <4123478+tido64@users.noreply.github.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Adds a promptfoo suite that checks a past Copilot session against this repository's conventions, from
AGENTS.mdand maintainer preferences. It replays the session from its event log instead of running a new agent. It then checks what the agent ran, which tools it called, what it changed and what it replied.@rnx-kit/agent-evals(new, private,incubator/)The parts that are not specific to rnx-kit:
./provider): replays a Copilot session from~/.copilot/session-state/<id>/events.jsonl.cdbest-effort and handling heredocs, comments and$((…)).ghCLI, and looks up their title and author withghwithout writing anything../grader): gradesllm-rubricassertions with Copilot through@github/copilot-sdk.COPILOT_GITHUB_TOKEN,GH_TOKEN,GITHUB_TOKEN, orgh auth login../report): anafterAllhook that prints one line per test (description and id), followed by the full reasons for failed assertions and errors. promptfoo's table showed the session id and truncated JSON output, which didn't say what was tested or why it failed.ranCommandanddidNotRunCommand, which resolveyarn --cwdandyarn workspaceranChecksForChangeschangesetsmatchesContentnotModifiedOnGitHubforGrader, which formats the run for graders and summarizes lockfile diffs@rnx-kit/evals(new, private,evals/)tests/audit.yaml: 19 tests for rnx-kit conventions, some checked in code and some by thellm-rubricgrader. Each has ametadata.idand the source of the rule (AGENTS.mdor a user memory).changesetsMatchChanges: change files for changed published packages, none for private packagesnewPackagesScaffoldeddocsiteDependenciesnoInlineTypeSpecifiersusesPackageTestRunnerpassesOxlint, used withconfigs/oxlint/types-only.jsonyarn evalandyarn viewrun promptfoo 0.124.1 throughnpx. promptfoo is deliberately not a Yarn dependency, because adding it madeyarn installrun out of memory.Other changes
AGENTS.md:@rnx-kit/ignore, which doesn't exist.buildandtsc.parse-diffmoved to the Yarn catalog, which@rnx-kit/suggestion-botnow uses as well.evalsadded to the root workspaces, and knip entries added for both packages.Test plan
Unit tests (Node.js test runner, checked-in fixture workspaces):
Audit a real session:
Things to look for:
✓,✗or!with its description and id.ghis only used for reads (gh apiGET requests).Example run: